<template>
	<view class="top-red-wrapper">
		<!-- 红色顶部主区域 -->
		<view class="red-header">
			<!-- 分类标签栏：紧凑排列，不右对齐 -->
			<view class="tabs-container">
				<view v-for="(tab, index) in tabs" :key="index" class="tab-item"
					:class="{ active: activeTab === index }" @click="switchTab(index)">
					{{ tab }}
				</view>
			</view>
			<!-- 第二行：天气（左） + 搜索框（右） -->
			<view class="header-row">
				<!-- 天气信息 -->
				<view class="weather-bar">
					<uni-icons type="sunny" size="18" color="#f90"></uni-icons>
					<text class="city-temp">{{ weather.city }} {{ weather.temp }}℃</text>
					<text class="weather-desc">{{ weather.desc }}</text>
				</view>
				<!-- 占位容器推挤搜索框靠右 -->
				<view class="flex-spacer"></view>
				<!-- 小尺寸搜索框 -->
				<view class="search-container">
					<view class="search-box">
						<uni-icons type="search" size="14" color="#999"></uni-icons>
						<input type="text" placeholder="搜索关键词" v-model="searchVal" @input="handleSearch"
							placeholder-style="color:#999">
					</view>
				</view>
			</view>
		</view>
	</view>
</template>
<script>
	export default {
		name: 'TopRedHeader',
		props: {
			weather: {
				type: Object,
				default: () => ({
					city: '广州',
					temp: '28',
					desc: '多云转晴'
				})
			},
			// 调整标签为示例图中的"要闻、推荐、关注流"等
			tabs: {
				type: Array,
				default: () => ['推荐','要闻', '军事', '娱乐', '科技', '财经', '体育','国际','健康']
			}
		},
		data() {
			return {
				activeTab: 0,
				searchVal: '',
				searchTimer: null
			}
		},
		methods: {
			switchTab(index) {
				this.activeTab = index;
				this.$emit('tab-change', this.tabs[index]);
			},
			handleSearch() {
				clearTimeout(this.searchTimer);
				this.searchTimer = setTimeout(() => {
					this.$emit('search', this.searchVal.trim());
				}, 300);
			}
		},
		beforeDestroy() {
			clearTimeout(this.searchTimer);
		}
	}
</script>
<style scoped>
	/* 顶部整体样式 */
	.top-red-wrapper {
		width: 100%;
		background-color: #fff;
	}
	/* 红色头部主区域 */
	.red-header {
		background-color: #e63946;
		padding: 8rpx 16rpx; /* 减小内边距，让标签更紧凑 */
	}
	/* 标签容器：核心！自然排列，不右对齐 */
	.tabs-container {
		display: flex;
		align-items: center;
		gap: 20rpx; /* 缩小标签间距，更紧凑 */
		flex-wrap: nowrap;
		overflow-x: auto; /* 标签过多时允许横向滚动（避免挤压） */
		padding-bottom: 4rpx;
		scrollbar-width: none; /* 隐藏滚动条（美观） */
	}
	/* 隐藏滚动条（兼容webkit内核） */
	.tabs-container::-webkit-scrollbar {
		display: none;
	}
	/* 分类标签样式：适配紧凑布局 */
	.tab-item {
		color: #fff;
		font-size: 26rpx; /* 适中字体大小 */
		padding: 6rpx 8rpx; /* 增加左右内边距，点击区域更大 */
		position: relative;
		opacity: 0.9;
		white-space: nowrap;
	}
	/* 选中标签高亮 */
	.tab-item.active {
		font-weight: bold;
		opacity: 1;
	}
	.tab-item.active::after {
		content: '';
		position: absolute;
		bottom: 0;
		left: 10%;
		width: 80%; /* 下划线稍短，更精致 */
		height: 4rpx;
		background-color: #fff;
		border-radius: 2rpx;
	}
	/* 第二行布局：天气+搜索框 */
	.header-row {
		display: flex;
		align-items: center;
		margin-top: 6rpx; /* 与标签栏的间距 */
	}
	/* 占位容器：推挤搜索框靠右 */
	.flex-spacer {
		flex: 0.5;
	}
	/* 天气信息样式 */
	.weather-bar {
		display: flex;
		align-items: center;
		gap: 8rpx;
		font-size: 24rpx;
		color: #fff;
	}
	.city-temp {
		font-weight: 500;
	}
	.weather-desc {
		opacity: 0.9;
	}
	/* 搜索框样式：小尺寸，匹配示例 */
	.search-container {
		width: 240rpx; /* 更小巧的宽度 */
	}
	.search-box {
		display: flex;
		align-items: center;
		background-color: #fff;
		border-radius: 40rpx; /* 稍小的圆角 */
		padding: 6rpx 14rpx;
		width: 100%;
	}
	.search-box input {
		flex: 1;
		font-size: 22rpx;
		margin-left: 6rpx;
		height: 28rpx;
		line-height: 28rpx;
		color: #333;
	}
</style>